Make Sel
an opaque struct like Ivar
, Method,
Class
, Protocol
and Object
#105
+109
−120
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The discrepancy between usage of
Class
/Object
/... andSel
annoyed me, the others were used behind pointers / references, whileSel
was consumed directly.This changes the definition of
Sel
to be like the other types (so it has to be used as&Sel
), and also opens up for the possiblity of non-static selectors (if that ever becomes a thing).This is a breaking change, but fortunately most cases where
Sel
is used in user code (e.g.add_method
) the error is caught at compile-time, with recommendations on how to fix it.